home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet internetowy / Rozne / HTTrack 3.40-2 / httrack-3.40-2.exe / {app} / src / proxy / store.h < prev   
C/C++ Source or Header  |  2006-04-09  |  4KB  |  106 lines

  1. /* ------------------------------------------------------------ */
  2. /*
  3. HTTrack Website Copier, Offline Browser for Windows and Unix
  4. Copyright (C) Xavier Roche and other contributors
  5.  
  6. This program is free software; you can redistribute it and/or
  7. modify it under the terms of the GNU General Public License
  8. as published by the Free Software Foundation; either version 2
  9. of the License, or any later version.
  10.  
  11. This program is distributed in the hope that it will be useful,
  12. but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14. GNU General Public License for more details.
  15.  
  16. You should have received a copy of the GNU General Public License
  17. along with this program; if not, write to the Free Software
  18. Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  19.  
  20. Please visit our Website: http://www.httrack.com
  21. */
  22.  
  23. /* ------------------------------------------------------------ */
  24. /* File: Cache manager for ProxyTrack                           */
  25. /* Author: Xavier Roche                                         */
  26. /* ------------------------------------------------------------ */
  27.  
  28. #ifndef WEBHTTRACK_PROXYTRACK_STORE
  29. #define WEBHTTRACK_PROXYTRACK_STORE
  30.  
  31. /* Proxy */
  32.  
  33. typedef struct _PT_Index _PT_Index;
  34. typedef struct _PT_Indexes _PT_Indexes;
  35.  
  36. typedef struct _PT_Index *PT_Index;
  37. typedef struct _PT_Indexes *PT_Indexes;
  38.  
  39. typedef struct _PT_Cache _PT_Cache;
  40. typedef struct _PT_Cache *PT_Cache;
  41.  
  42. typedef struct _PT_CacheItem _PT_CacheItem;
  43. typedef struct _PT_CacheItem *PT_CacheItem;
  44.  
  45. typedef struct _PT_Element {
  46.     int indexId;                     // index identifier, if suitable (!= -1)
  47.     //
  48.   int statuscode;        // status-code, -1=erreur, 200=OK,201=..etc (cf RFC1945)
  49.   char* adr;             // adresse du bloc de mΘmoire, NULL=vide
  50.   char* headers;         // adresse des en tΩtes si prΘsents
  51.   unsigned long int size;    // taille fichier
  52.   char msg[1024];        // error message ("\0"=undefined)
  53.   char contenttype[64];  // content-type ("text/html" par exemple)
  54.   char charset[64];      // charset ("iso-8859-1" par exemple)
  55.   char* location;        // on copie dedans Θventuellement la vΘritable 'location'
  56.   char lastmodified[64]; // Last-Modified
  57.   char etag[64];         // Etag
  58.   char cdispo[256];      // Content-Disposition coupΘ
  59. } _PT_Element;
  60. typedef struct _PT_Element *PT_Element;
  61.  
  62. typedef enum PT_Fetch_Flags {
  63.     FETCH_HEADERS,                // fetch headers
  64.     FETCH_BODY                        // fetch body
  65. } PT_Fetch_Flags;
  66.  
  67. /* Locking */
  68. #ifdef _WIN32
  69. typedef void* PT_Mutex;
  70. #else
  71. typedef pthread_mutex_t PT_Mutex;
  72. #endif
  73.  
  74. void MutexInit(PT_Mutex *pMutex);
  75. void MutexLock(PT_Mutex *pMutex);
  76. void MutexUnlock(PT_Mutex *pMutex);
  77. void MutexFree(PT_Mutex *pMutex);
  78.  
  79. /* Indexes */
  80. PT_Indexes PT_New(void);
  81. void PT_Delete(PT_Indexes index);
  82. PT_Element PT_ReadIndex(PT_Indexes indexes, const char* url, int flags);
  83. int PT_LookupIndex(PT_Indexes indexes, const char* url);
  84. int PT_AddIndex(PT_Indexes index, const char *path);
  85. int PT_RemoveIndex(PT_Indexes index, int indexId);
  86. int PT_IndexMerge(PT_Indexes indexes, PT_Index *pindex);
  87. PT_Index PT_GetIndex(PT_Indexes indexes, int indexId);
  88.  
  89. /* Indexes list */
  90. PT_Element PT_Index_HTML_BuildRootInfo(PT_Indexes indexes);
  91. char ** PT_Enumerate(PT_Indexes indexes, const char *url, int subtree);
  92. void PT_Enumerate_Delete(char ***plist);
  93.  
  94. /* Index */
  95. PT_Index PT_LoadCache(const char *filename);
  96. void PT_Index_Delete(PT_Index *pindex);
  97. PT_Element PT_ReadCache(PT_Index index, const char* url, int flags);
  98. int PT_LookupCache(PT_Index index, const char* url);
  99. time_t PT_Index_Timestamp(PT_Index index);
  100.  
  101. /* Elements*/
  102. PT_Element PT_ElementNew(void);
  103. void PT_Element_Delete(PT_Element *pentry);
  104.  
  105. #endif
  106.